package edu.bw.mapper;

import edu.bw.po.Student;
import edu.bw.vo.QueryVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentMapper {
    /**
     *
     * @param sno 学号
     * @return 根据学号查询到的学生对象
     */
    Student findBySno(int sno);

    /**
     *
     * @param sname 学生姓名
     * @return 根据学生姓名模糊查询到的单个或多个学生对象的一个集合
     */
    List<Student> findBySname(String sname);

    /**
     * 根据相关条件查询学生信息
     * @param queryVO
     * @return 查询到的学生信息
     */
    List<Student> selectByCondition(QueryVO queryVO);

    /**
     * 根据相关学号查询学生信息
     * @param queryVO
     * @return 查询到的学生信息
     */
    List<Student> selectBySnos(QueryVO queryVO);

    /**
     * 根据学生学号跟姓名查询学生信息
     * @param sno 学号
     * @param sname 姓名
     * @return 学生信息
     */
    List<Student> selectStudentByChoose(@Param("sno") Integer sno,@Param("sname") String sname);

    /**
     * 根据学生学号跟姓名查询学生信息
     * @param sno 学号
     * @param sname 姓名
     * @return 学生信息
     */
    List<Student> selectStudentByTrim(@Param("sno") Integer sno,@Param("sname") String sname);

    /**
     * 更新学生信息
     * @param student
     * @return 影响的行数
     */
    int updateStudent(Student student);

    /**
     * 根据指定的条件查询一共有多少个学生
     * @param
     * @return 查询到的学生总数
     */
    int selectCount(QueryVO queryVO);


}
